/*
 *  SineWaveTable.h
 *  SoundController0002
 *
 *  Created by : on 10/06/29.
 *  Copyright 2010 jiro music. All rights reserved.
 *
 */

#pragma once

#include "WaveTable.h"
#include "Constants.h"
#include <cmath>

namespace sc
{
	class SineWaveTable : public WaveTable
	{
	private:

		double phaseShift;

	public:

		/*	@brief 
			@param frequency
			@param phaseShift is in ( -1, 1 )
			@param adjuster		*/
		SineWaveTable( double frequency, double phaseShift, double adjuster );

		virtual ~SineWaveTable();

		bool operator == ( const WaveTable& rhs ) const;

		bool operator != ( const WaveTable& rhs ) const;
		
		//	for std::set
		bool operator < ( const WaveTable& rhs ) const;

		double operator [] ( double time ) const;
	};

}
